home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Multimedia Viewer How-To CD / Microsoft Multimedia Viewer How-To CD.iso / viewerht / title.mst < prev    next >
Text File  |  1994-03-04  |  38KB  |  735 lines

  1. '**************************************************************************
  2. '*
  3. '* TITLE.MST - Viewer Runtime Setup Script
  4. '*
  5. '* Customized for Viewer How-To by Stephen Pruitt
  6. '*
  7. '* CUSTOMIZING TITLE.MST
  8. '*
  9. '* For a simple Setup routine, you just need to assign values to the 
  10. '* series of variables following the heading "Setup Variables". This
  11. '* script also provides for the following more-advanced options, which
  12. '* are supported by subroutines located later in this script:
  13. '*
  14. '* Option                                         See Subroutine
  15. '* ------------------------------------------     ---------------------
  16. '* Install more than one .MVB file                ModifyViewerIni
  17. '* Install Help title                             ModifyViewerIni
  18. '* Install custom DLLs                            ModifyViewerIni
  19. '* Install multiple Program Manager items         ModifyProgramManager
  20. '* Display a custom icon with the ProgMan item    ModifyProgramManager
  21. '* Install custom fonts                           RegisterCustomFonts
  22. '* Install Video for Windows runtime files        RegisterDrivers
  23. '*
  24. '* Each customization note starts with the heading CUSTOMIZATION.
  25. '*
  26. '**************************************************************************
  27.     
  28.     '' Global variables
  29.  
  30.     GLOBAL TitleShortName$
  31.     GLOBAL TitleLongName$
  32.     GLOBAL MVBFileName$
  33.     GLOBAL PromptForPath%
  34.     GLOBAL DefaultPath$
  35.     GLOBAL ProgManGroup$
  36.     GLOBAL ProgManItem$
  37.  
  38.     '' ****************************************************************
  39.     '' ** Setup Variables
  40.     '' ****************************************************************
  41.  
  42.     '' Set the following string to a short form of the title name
  43.     '' (for example, "Gallery")
  44.     
  45.     TitleShortName$ = "How-To"
  46.     
  47.     '' Set the following string to a long form of the title name
  48.     '' (for example, "Viewer 2.0 Gallery")
  49.     
  50.     TitleLongName$ = "Viewer How-To"
  51.         
  52.     '' Set the following variable to the name of the MVB file, without 
  53.     '' the filename extension (for example, "GALLERY")
  54.         
  55.     MVBFileName$ = "viewerht"
  56.         
  57.     '' The following variable determines whether Setup prompts the user
  58.     '' to specify a directory in which to install title files. (Files
  59.     '' to be installed on the hard disk must be listed in the TITLE.INF 
  60.     '' file under the [Installed Title Files] section.) Specify one of
  61.     '' the following values:
  62.     ''
  63.     '' 0    Install title files in the Windows directory (default setting).
  64.     ''      This is an appropriate setting if you have a limited number
  65.     ''      of files to copy (for example, a single custom icon or DLL).
  66.     ''
  67.     '' 1    Display a dialog box to prompt the user for a directory in 
  68.     ''      which to install files
  69.         
  70.     PromptForPath% = 1
  71.         
  72.     '' If you have specified 1 in PromptForPath%, set the following 
  73.     '' variable to the default path that will be displayed in the dialog
  74.     '' box (for example, "C:\GALLERY").
  75.         
  76.     DefaultPath$ = "C:\VIEWERHT"
  77.     
  78.     '' Set the following variable to the name of the program manager 
  79.     '' group you would like to create (for example, "Viewer 2.0 Gallery")
  80.         
  81.     ProgManGroup$ = "Viewer How-To"
  82.     
  83.     '' Set the following variable to the caption of the program manager 
  84.     '' item for your title (for example, "Gallery")
  85.         
  86.     ProgManItem$ = "Viewer How-To"
  87.     
  88.     '***********************************************************************
  89.     '** Mainline
  90.     '***********************************************************************
  91.  
  92.     GLOBAL CUIDLL$
  93.     GLOBAL szViewerDir$
  94.  
  95.     '' Include files
  96.     '$INCLUDE 'setupapi.inc'
  97.     
  98.     '' Custom UI dll
  99.     CUIDLL$ = "mscuistf.dll"
  100.     
  101.     '' Dialog ID's
  102.     CONST DESTPATH      = 1000
  103.     CONST APPHELP       = 2000
  104.     CONST TOOBIG        = 3000
  105.     CONST BADPATH       = 4000
  106.     CONST SUCCESS       = 5000
  107.     CONST VWRDIR        = 6000
  108.     
  109.     '' Bitmap ID
  110.     CONST LOGO = 1
  111.     
  112.     '' Functions and subroutines
  113.     DECLARE FUNCTION AddFont LIB "mscuistf.dll" (szFont$, szName$) AS INTEGER
  114.     DECLARE FUNCTION FDoesFileExist LIB "msdetstf.dll" (szFileName$, mode%) AS INTEGER
  115.     DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  116.     DECLARE FUNCTION GetTitleDir (szDefault$) AS STRING
  117.     DECLARE FUNCTION GetViewerDir (szDefault$) AS STRING
  118.     DECLARE FUNCTION CopyFiles(szTitleDir$, szViewerDir$) AS INTEGER
  119.     DECLARE SUB RegisterFont(fontfile$, fontname$)
  120.     DECLARE SUB ModifyViewerIni(szTitleDir$)
  121.     DECLARE SUB RegisterCustomFonts
  122.     DECLARE SUB ModifyProgramManager(szTitleDir$)
  123.     DECLARE SUB ShowSuccess
  124.     DECLARE SUB RegisterDrivers
  125.     
  126.     '' The following statement turns size checking off. Set it to scmOnFatal 
  127.     '' to enable size checking, where Setup will compare the disk file size 
  128.     '' with the INF file size and report an error if they are not the same.
  129.     
  130.     i% = SetSizeCheckMode(scmOff)
  131.     
  132.     '' Set the title and banner bitmap. You must rebuild MSCUISTF.DLL to 
  133.     '' alter the banner bitmap.
  134.     
  135.     SetTitle "Viewer How-To Setup"
  136.     SetBitmap CUIDLL$, LOGO 
  137.     
  138.     '' Read in the INF file.
  139.     
  140.     ReadInfFile GetSymbolValue("STF_CWDDIR") + "TITLE.INF"
  141.     
  142.     '' Decide where to put title files
  143.     IF PromptForPath% = 1 THEN
  144.         szTitleDir$ = GetTitleDir(DefaultPath$)
  145.         IF szTitleDir$ = "" THEN
  146.             GOTO QUIT
  147.         ENDIF
  148.     ELSE
  149.         szTitleDir$ = GetWindowsDir()
  150.     ENDIF   
  151.  
  152.     szViewerDir$ = GetViewerDir("C:\MVPUBKIT")
  153.     If szViewerDir$ = "" THEN
  154.         GOTO QUIT
  155.     ENDIF
  156.     
  157.     '' Copy files
  158.     IF CopyFiles(szTitleDir$, szViewerDir$) = 0 THEN
  159.         GOTO QUIT
  160.     ENDIF
  161.  
  162.     
  163.     '' Create the MVIEWER2.EXE MVB association 
  164.     CreateIniKeyValue "WIN.INI", "Extensions", "MVB", "mviewer2.exe", cmoNone
  165.  
  166.     '' Register in VIEWER.INI
  167.     ModifyViewerIni(szTitleDir$)
  168.  
  169.     '' Register custom fonts
  170.     RegisterCustomFonts
  171.  
  172.     '' Register drivers
  173.     RegisterDrivers
  174.     
  175.     '' Modify Program Manager
  176.     ModifyProgramManager(szTitleDir$)
  177.     
  178.     '' Success dialog
  179.     ShowSuccess
  180.     
  181.     '' Now start the title
  182.  
  183.     '' RUN "mviewer2.exe " + MVBFileName$ + ".MVB", NOWAIT
  184.     RUN "notepad " + szTitleDir$ + "\readme.txt", NOWAIT
  185.  
  186. QUIT:
  187.     
  188.     END
  189.     
  190.  
  191. '*************************************************************************
  192. '** Purpose:
  193. '**     Prompts the user for a path for the title files
  194. '** Arguments:
  195. '**     szDefault$ - default path
  196. '** Returns:
  197. '**     New valid path name, or "" if the user quit.
  198. '*************************************************************************
  199.  
  200. FUNCTION GetTitleDir (szDefault$) STATIC AS STRING
  201.  
  202.     SetSymbolValue "String", TitleShortName$
  203.     SetSymbolValue "EditTextIn", szDefault$
  204.     SetSymbolValue "EditFocus", "ALL"
  205.  
  206.     GETPATH:
  207.  
  208.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, "FHelpDlgProc")
  209.  
  210.     IF sz$ = "CONTINUE" THEN
  211.         szTitleDir$ = GetSymbolValue("EditTextOut")
  212.         IF IsDirWritable(szTitleDir$) = 0 THEN
  213.  
  214.             BADPATH:
  215.  
  216.             sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfoDlgProc", 0, "")
  217.             IF sz$ = "REACTIVATE" THEN
  218.                 GOTO BADPATH
  219.             END IF
  220.             UIPop 1
  221.             GOTO GETPATH
  222.         END IF
  223.         UIPop 1
  224.         CreateDir szTitleDir$, cmoNone
  225.  
  226.  
  227.     ELSEIF sz$ = "REACTIVATE" THEN
  228.         GOTO GETPATH
  229.  
  230.     ELSE
  231.         szTitleDir$ = ""
  232.  
  233.     END IF
  234.  
  235.     GetTitleDir = szTitleDir$
  236.  
  237. END FUNCTION
  238.  
  239. '*************************************************************************
  240. '** Purpose:
  241. '**     Prompts the user for a path for the Viewer Toolkit
  242. '** Arguments:
  243. '**     szDefault$ - default path
  244. '** Returns:
  245. '**     New valid path name, or "" if the user quit.
  246. '*************************************************************************
  247.  
  248. FUNCTION GetViewerDir (szDefault$) STATIC AS STRING
  249.  
  250.     SetSymbolValue "String", TitleShortName$
  251.     SetSymbolValue "EditTextIn", szDefault$
  252.     SetSymbolValue "EditFocus", "ALL"
  253.  
  254.     GETPATH:
  255.  
  256.     sz$ = UIStartDlg(CUIDLL$, VWRDIR, "FEditDlgProc", APPHELP, "FHelpDlgProc")
  257.  
  258.     IF sz$ = "CONTINUE" THEN
  259.         szTitleDir$ = GetSymbolValue("EditTextOut")
  260.         IF IsDirWritable(szTitleDir$) = 0 THEN
  261.  
  262.             BADPATH:
  263.  
  264.             sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfoDlgProc", 0, "")
  265.             IF sz$ = "REACTIVATE" THEN
  266.                 GOTO BADPATH
  267.             END IF
  268.             UIPop 1
  269.             GOTO GETPATH
  270.         END IF
  271.         UIPop 1
  272.  
  273.         IF FDoesFileExist(szTitleDir$ + "\mvtools\wmvc.exe", femExists) THEN
  274.         ELSE
  275.             GOTO BADPATH
  276.         END IF
  277.  
  278.         CreateDir szTitleDir$ + "\addons", cmoNone
  279.         CreateDir szTitleDir$ + "\addons\mvtran", cmoNone
  280.         CreateDir szTitleDir$ + "\addons\mvvbx", cmoNone
  281.         CreateDir szTitleDir$ + "\addons\push", cmoNone
  282.         CreateDir szTitleDir$ + "\addons\score", cmoNone
  283.         CreateDir szTitleDir$ + "\addons\vbcomm2", cmoNone
  284.         CreateDir szTitleDir$ + "\addons\vlaunch", cmoNone
  285.         CreateDir szTitleDir$ + "\addons\tstools", cmoNone
  286.  
  287.  
  288.     ELSEIF sz$ = "REACTIVATE" THEN
  289.         GOTO GETPATH
  290.  
  291.     ELSE
  292.         szTitleDir$ = ""
  293.  
  294.     END IF
  295.  
  296.     GetViewerDir = szTitleDir$
  297.  
  298. END FUNCTION
  299.  
  300. '*************************************************************************
  301. '** Purpose:
  302. '**     Copies the files in the INF file
  303. '** Arguments:
  304. '**     szTitleDir$ - destination directory for the title files
  305. '**     szViewerDir$ - destination directory for Viewer addon files
  306. '** Returns
  307. '**     1 if files were copied, 0 otherwise
  308. '*************************************************************************
  309.  
  310. FUNCTION CopyFiles(szTitleDir$, szViewerDir$) STATIC AS INTEGER
  311.  
  312.     '' Add all system files to the copy list
  313.     AddSectionFilesToCopyList "System Files", GetSymbolValue("STF_SRCDIR"), GetWindowsSysDir()
  314.     
  315.     '' Add all of the title files to the copy list
  316.     AddSectionFilesToCopyList "Installed Title Files", GetSymbolValue("STF_SRCDIR"), szTitleDir$
  317.     
  318.     AddSectionFilesToCopyList "Viewer Files", GetSymbolValue("STF_SRCDIR"), szViewerDir$
  319.  
  320.  
  321.     '' Check size
  322.     szExtras$ = "Extra"
  323.     szCosts$ = "Costs"
  324.     szNeededs$ = "Neededs"
  325.     FOR i% = 1 TO 26 STEP 1
  326.         AddListItem szExtras$, "0"
  327.     NEXT i%
  328.     
  329.     '' We assume that VIEWER.INI will take another 4K
  330.     ReplaceListItem szExtras$, ASC(MID$(GetWindowsDir(), 1, 1)) - ASC("A") + 1, STR$(4096)
  331.     
  332.     '' Get amount of space required
  333.     StillNeed& = GetCopyListCost(szExtras$, szCosts$, szNeededs$)
  334.     
  335.     '' Put up a message if there is not enough space
  336.     FOR i% = 1 TO 26 STEP 1
  337.         IF VAL(GetListItem(szNeededs$, i%)) > 0 THEN
  338.     
  339.             SetSymbolValue "String1", LTRIM$(STR$(VAL(GetListItem(szCosts$, i%)) / 1024))
  340.             SetSymbolValue "String2", CHR$(i% - 1 + ASC("A"))
  341.     
  342.             TOOBIG:
  343.     
  344.             sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfoDlgProc", 0, "")
  345.             IF sz$ = "REACTIVATE" THEN
  346.                 GOTO TOOBIG
  347.             END IF
  348.             UIPop 1
  349.             CopyFiles = 0
  350.             GOTO DONTCOPY
  351.         END IF
  352.     NEXT i%
  353.     
  354.     '' Copy the files
  355.     CopyFilesInCopyList
  356.     
  357.     CopyFiles = 1
  358.  
  359. DONTCOPY:
  360.  
  361. END FUNCTION
  362.  
  363.  
  364. '*************************************************************************
  365. '** Purpose:
  366. '**     Puts up a success dialog
  367. '*************************************************************************
  368.  
  369. SUB ShowSuccess STATIC
  370.  
  371.     SUCCESS:
  372.     
  373.     SetSymbolValue "String1", TitleShortName$
  374.     sz$ = UIStartDlg(CUIDLL$, SUCCESS, "FInfoDlgProc", 0, "")
  375.     IF sz$ = "REACTIVATE" THEN
  376.         GOTO SUCCESS
  377.     END IF
  378.     UIPop 1
  379.     
  380. END SUB
  381.  
  382.  
  383. '*************************************************************************
  384. '** Purpose:
  385. '**     Appends a file name to the end of a directory path,
  386. '**     inserting a backslash character as needed.
  387. '** Arguments:
  388. '**     szDir$  - full directory path (with optional ending "\")
  389. '**     szFile$ - filename to append to directory
  390. '** Returns:
  391. '**     Resulting fully qualified path name.
  392. '*************************************************************************
  393.  
  394. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  395.     IF szDir$ = "" THEN
  396.         MakePath = szFile$
  397.     ELSEIF szFile$ = "" THEN
  398.         MakePath = szDir$
  399.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  400.         MakePath = szDir$ + szFile$
  401.     ELSE
  402.         MakePath = szDir$ + "\" + szFile$
  403.     END IF
  404. END FUNCTION
  405.  
  406.  
  407. '*************************************************************************
  408. '** Purpose:
  409. '**     Registers a font.
  410. '** Arguments:
  411. '**     fontfile$ - font filename
  412. '**     fontname$ - font name.
  413. '*************************************************************************
  414.  
  415. SUB RegisterFont(fontfile$, fontname$) STATIC
  416.  
  417.     '' A simple error catching wrapper around AddFont, which is a 'C' routine in MSCUISTF.DLL
  418.  
  419.     IF AddFont(fontfile$, fontname$) = -1 THEN
  420.         j% = DoMsgBox("Could not install " + fontfile$ + " font.", "Viewer Font Installation", 0)
  421.     ENDIF
  422.  
  423. END SUB
  424.  
  425.  
  426. '*************************************************************************
  427. '** Purpose:
  428. '**     Registers title in VIEWER.INI
  429. '*************************************************************************
  430.  
  431. SUB ModifyViewerIni(szTitleDir$) STATIC
  432.  
  433.     '' Get the VIEWER.INI file
  434.     
  435.     szIni$ = MakePath(GetWindowsDir(), "VIEWER.INI")
  436.  
  437.     '' First register the title file, setting the Name and Path entries. 
  438.     '' We assume that the MVB file is the same directory as SETUP.EXE.
  439.     ''
  440.     '' CUSTOMIZATION: If you're installing multiple MVB files, copy the
  441.     '' following two statements for each additional file, substituting
  442.     '' the appropriate long name and MVB filename for the TitleLongName$
  443.     '' and MVBFileName$ variables.
  444.     
  445.     CreateIniKeyValue szIni$, MVBFileName$, "Name", TitleLongName$, cmoOverwrite
  446.     CreateIniKeyValue szIni$, MVBFileName$, "Path", GetSymbolValue("STF_SRCDIR"), cmoOverwrite
  447.  
  448.     CreateIniKeyValue szIni$, "chap3", "Name", "How-To 3", cmoOverwrite
  449.     CreateIniKeyValue szIni$, "chap3", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap3\chap3_6\", cmoOverwrite
  450.     CreateIniKeyValue szIni$, "chap4_1", "Name", "How-To 4.1", cmoOverwrite
  451.     CreateIniKeyValue szIni$, "chap4_1", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap4\chap4_1\", cmoOverwrite
  452.     CreateIniKeyValue szIni$, "chap4_2", "Name", "How-To 4.2", cmoOverwrite
  453.     CreateIniKeyValue szIni$, "chap4_2", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap4\chap4_2\", cmoOverwrite
  454.     CreateIniKeyValue szIni$, "chap4_3", "Name", "How-To 4.3", cmoOverwrite
  455.     CreateIniKeyValue szIni$, "chap4_3", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap4\chap4_3\", cmoOverwrite
  456.     CreateIniKeyValue szIni$, "chap4_4", "Name", "How-To 4.4", cmoOverwrite
  457.     CreateIniKeyValue szIni$, "chap4_4", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap4\chap4_4\", cmoOverwrite
  458.     CreateIniKeyValue szIni$, "chap4_5", "Name", "How-To 4.5", cmoOverwrite
  459.     CreateIniKeyValue szIni$, "chap4_5", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap4\chap4_5\", cmoOverwrite
  460.     CreateIniKeyValue szIni$, "chap4_6", "Name", "How-To 4.6", cmoOverwrite
  461.     CreateIniKeyValue szIni$, "chap4_6", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap4\chap4_6\", cmoOverwrite
  462.     CreateIniKeyValue szIni$, "chap5_1", "Name", "How-To 5.1", cmoOverwrite
  463.     CreateIniKeyValue szIni$, "chap5_1", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_1\", cmoOverwrite
  464.     CreateIniKeyValue szIni$, "chap5_3", "Name", "How-To 5.3", cmoOverwrite
  465.     CreateIniKeyValue szIni$, "chap5_3", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_3\", cmoOverwrite
  466.     CreateIniKeyValue szIni$, "chap5_4", "Name", "How-To 5.4", cmoOverwrite
  467.     CreateIniKeyValue szIni$, "chap5_4", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_4\", cmoOverwrite
  468.     CreateIniKeyValue szIni$, "chap5_5", "Name", "How-To 5.5", cmoOverwrite
  469.     CreateIniKeyValue szIni$, "chap5_5", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_5\", cmoOverwrite
  470.     CreateIniKeyValue szIni$, "chap5_6", "Name", "How-To 5.6", cmoOverwrite
  471.     CreateIniKeyValue szIni$, "chap5_6", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_6\", cmoOverwrite
  472.     CreateIniKeyValue szIni$, "chap5_7", "Name", "How-To 5.7", cmoOverwrite
  473.     CreateIniKeyValue szIni$, "chap5_7", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_7\", cmoOverwrite
  474.     CreateIniKeyValue szIni$, "chap5_8", "Name", "How-To 5.8", cmoOverwrite
  475.     CreateIniKeyValue szIni$, "chap5_8", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_8\", cmoOverwrite
  476.     CreateIniKeyValue szIni$, "chap5_9", "Name", "How-To 5.9", cmoOverwrite
  477.     CreateIniKeyValue szIni$, "chap5_9", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_9\", cmoOverwrite
  478.     CreateIniKeyValue szIni$, "chap5_10", "Name", "How-To 5.10", cmoOverwrite
  479.     CreateIniKeyValue szIni$, "chap5_10", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_10\", cmoOverwrite
  480.     CreateIniKeyValue szIni$, "chap5_11", "Name", "How-To 5.11", cmoOverwrite
  481.     CreateIniKeyValue szIni$, "chap5_11", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_11\", cmoOverwrite
  482.     CreateIniKeyValue szIni$, "chap6_1", "Name", "How-To 6.1", cmoOverwrite
  483.     CreateIniKeyValue szIni$, "chap6_1", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_1\", cmoOverwrite
  484.     CreateIniKeyValue szIni$, "chap6_2", "Name", "How-To 6.2", cmoOverwrite
  485.     CreateIniKeyValue szIni$, "chap6_2", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_2\", cmoOverwrite
  486.     CreateIniKeyValue szIni$, "chap6_3", "Name", "How-To 6.3", cmoOverwrite
  487.     CreateIniKeyValue szIni$, "chap6_3", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_3\", cmoOverwrite
  488.     CreateIniKeyValue szIni$, "chap6_4", "Name", "How-To 6.4", cmoOverwrite
  489.     CreateIniKeyValue szIni$, "chap6_4", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_4\", cmoOverwrite
  490.     CreateIniKeyValue szIni$, "chap6_5", "Name", "How-To 6.5", cmoOverwrite
  491.     CreateIniKeyValue szIni$, "chap6_5", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_5\", cmoOverwrite
  492.     CreateIniKeyValue szIni$, "chap6_6", "Name", "How-To 6.6", cmoOverwrite
  493.     CreateIniKeyValue szIni$, "chap6_6", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_6\", cmoOverwrite
  494.     CreateIniKeyValue szIni$, "chap6_7", "Name", "How-To 6.7", cmoOverwrite
  495.     CreateIniKeyValue szIni$, "chap6_7", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_7\", cmoOverwrite
  496.     CreateIniKeyValue szIni$, "chap6_8", "Name", "How-To 6.8", cmoOverwrite
  497.     CreateIniKeyValue szIni$, "chap6_8", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_8\", cmoOverwrite
  498.     CreateIniKeyValue szIni$, "chap6_9", "Name", "How-To 6.9", cmoOverwrite
  499.     CreateIniKeyValue szIni$, "chap6_9", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_9\", cmoOverwrite
  500.     CreateIniKeyValue szIni$, "chap7_1p", "Name", "How-To 7.1", cmoOverwrite
  501.     CreateIniKeyValue szIni$, "chap7_1p", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap7\chap7_1\", cmoOverwrite
  502.     CreateIniKeyValue szIni$, "chap7_1s", "Name", "How-To 7.1", cmoOverwrite
  503.     CreateIniKeyValue szIni$, "chap7_1s", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap7\chap7_1\", cmoOverwrite
  504.     CreateIniKeyValue szIni$, "chap7_2p", "Name", "How-To 7.2", cmoOverwrite
  505.     CreateIniKeyValue szIni$, "chap7_2p", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap7\chap7_2\", cmoOverwrite
  506.     CreateIniKeyValue szIni$, "chap7_2s", "Name", "How-To 7.2", cmoOverwrite
  507.     CreateIniKeyValue szIni$, "chap7_2s", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap7\chap7_2\", cmoOverwrite
  508.     CreateIniKeyValue szIni$, "chap8_1", "Name", "How-To 8.1", cmoOverwrite
  509.     CreateIniKeyValue szIni$, "chap8_1", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap8\chap8_1\", cmoOverwrite
  510.     CreateIniKeyValue szIni$, "chap8_2", "Name", "How-To 8.2", cmoOverwrite
  511.     CreateIniKeyValue szIni$, "chap8_2", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap8\chap8_2\", cmoOverwrite
  512.     CreateIniKeyValue szIni$, "chap8_3", "Name", "How-To 8.3", cmoOverwrite
  513.     CreateIniKeyValue szIni$, "chap8_3", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap8\chap8_3\", cmoOverwrite
  514.     CreateIniKeyValue szIni$, "chap8_4", "Name", "How-To 8.4", cmoOverwrite
  515.     CreateIniKeyValue szIni$, "chap8_4", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap8\chap8_4\", cmoOverwrite
  516.     CreateIniKeyValue szIni$, "chap8_5", "Name", "How-To 8.5", cmoOverwrite
  517.     CreateIniKeyValue szIni$, "chap8_5", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap8\chap8_5\", cmoOverwrite
  518.     CreateIniKeyValue szIni$, "chap9_1", "Name", "How-To 9.1", cmoOverwrite
  519.     CreateIniKeyValue szIni$, "chap9_1", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap9\chap9_1\", cmoOverwrite
  520.     CreateIniKeyValue szIni$, "chap9_2", "Name", "How-To 9.2", cmoOverwrite
  521.     CreateIniKeyValue szIni$, "chap9_2", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap9\chap9_2\", cmoOverwrite
  522.     CreateIniKeyValue szIni$, "chap9_3", "Name", "How-To 9.3", cmoOverwrite
  523.     CreateIniKeyValue szIni$, "chap9_3", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap9\chap9_3\", cmoOverwrite
  524.     CreateIniKeyValue szIni$, "chap9_4", "Name", "How-To 9.4", cmoOverwrite
  525.     CreateIniKeyValue szIni$, "chap9_4", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap9\chap9_4\", cmoOverwrite
  526.     CreateIniKeyValue szIni$, "chap9_5", "Name", "How-To 9.5", cmoOverwrite
  527.     CreateIniKeyValue szIni$, "chap9_5", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap9\chap9_5\", cmoOverwrite
  528.     CreateIniKeyValue szIni$, "chap9_6", "Name", "How-To 9.6", cmoOverwrite
  529.     CreateIniKeyValue szIni$, "chap9_6", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap9\chap9_6\", cmoOverwrite
  530.     CreateIniKeyValue szIni$, "chap9_7", "Name", "How-To 9.7", cmoOverwrite
  531.     CreateIniKeyValue szIni$, "chap9_7", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap9\chap9_7\", cmoOverwrite
  532.     CreateIniKeyValue szIni$, "chap10_1", "Name", "How-To 10.1", cmoOverwrite
  533.     CreateIniKeyValue szIni$, "chap10_1", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap10\chap10_1\", cmoOverwrite
  534.     CreateIniKeyValue szIni$, "chap10_2", "Name", "How-To 10.2", cmoOverwrite
  535.     CreateIniKeyValue szIni$, "chap10_2", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap10\chap10_2\", cmoOverwrite
  536.     CreateIniKeyValue szIni$, "chap11_1", "Name", "How-To 11.1", cmoOverwrite
  537.     CreateIniKeyValue szIni$, "chap11_1", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap11\chap11_1\", cmoOverwrite
  538.     CreateIniKeyValue szIni$, "chap11_2", "Name", "How-To 11.2", cmoOverwrite
  539.     CreateIniKeyValue szIni$, "chap11_2", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap11\chap11_2\", cmoOverwrite
  540.     CreateIniKeyValue szIni$, "chap11_3", "Name", "How-To 11.3", cmoOverwrite
  541.     CreateIniKeyValue szIni$, "chap11_3", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap11\chap11_3\", cmoOverwrite
  542.     CreateIniKeyValue szIni$, "chap11_4", "Name", "How-To 11.4", cmoOverwrite
  543.     CreateIniKeyValue szIni$, "chap11_4", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap11\chap11_4\", cmoOverwrite
  544.     CreateIniKeyValue szIni$, "chap12_1", "Name", "How-To 12.1", cmoOverwrite
  545.     CreateIniKeyValue szIni$, "chap12_1", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap12\chap12_1\", cmoOverwrite
  546.     CreateIniKeyValue szIni$, "chap12_2", "Name", "How-To 12.2", cmoOverwrite
  547.     CreateIniKeyValue szIni$, "chap12_2", "Path", GetSymbolValue("STF_SRCDIR") + "howtos\chap12\chap12_2\", cmoOverwrite
  548.     CreateIniKeyValue szIni$, "TsTools", "Name", "TsTools Demo", cmoOverwrite
  549.     CreateIniKeyValue szIni$, "TsTools", "Path", szViewerDir$ + "\addons\tstools\", cmoOverwrite
  550.     CreateIniKeyValue szIni$, "TsToolsw", "Name", "TsTools-Waite Demo", cmoOverwrite
  551.     CreateIniKeyValue szIni$, "TsToolsw", "Path", szViewerDir$ + "\addons\tstools\", cmoOverwrite
  552.  
  553.     
  554.     '' Now we have to register the MVB file in the [FILES] section, so 
  555.     '' Viewer can find files that are not on the path and display a 
  556.     '' special message when a file is not found.
  557.  
  558.  
  559.     CreateIniKeyValue szIni$, "FILES", MVBFileName$ + ".MVB", GetSymbolValue("STF_SRCDIR") + "," + "Please insert the " + TitleLongName$ + " disk.", cmoOverwrite
  560.     CreateIniKeyValue szIni$, "FILES", "vwrhelp.MVB", szViewerDir$ + "\mvhlpusa\," + "Please reinstall Viewer.", cmoOverwrite
  561.     CreateIniKeyValue szIni$, "FILES", "chap3.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap3\chap3_6\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  562.     CreateIniKeyValue szIni$, "FILES", "chap4_1.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap4\chap4_1\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  563.     CreateIniKeyValue szIni$, "FILES", "chap4_2.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap4\chap4_2\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  564.     CreateIniKeyValue szIni$, "FILES", "chap4_3.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap4\chap4_3\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  565.     CreateIniKeyValue szIni$, "FILES", "chap4_4.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap4\chap4_4\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  566.     CreateIniKeyValue szIni$, "FILES", "chap4_5.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap4\chap4_5\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  567.     CreateIniKeyValue szIni$, "FILES", "chap4_6.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap4\chap4_6\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  568.     CreateIniKeyValue szIni$, "FILES", "chap5_1.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_1\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  569.     CreateIniKeyValue szIni$, "FILES", "chap5_3.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_3\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  570.     CreateIniKeyValue szIni$, "FILES", "chap5_4.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_4\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  571.     CreateIniKeyValue szIni$, "FILES", "chap5_5.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_5\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  572.     CreateIniKeyValue szIni$, "FILES", "chap5_6.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_6\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  573.     CreateIniKeyValue szIni$, "FILES", "chap5_7.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_7\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  574.     CreateIniKeyValue szIni$, "FILES", "chap5_8.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_8\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  575.     CreateIniKeyValue szIni$, "FILES", "chap5_9.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_9\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  576.     CreateIniKeyValue szIni$, "FILES", "chap5_10.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_10\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  577.     CreateIniKeyValue szIni$, "FILES", "chap5_11.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap5\chap5_11\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  578.     CreateIniKeyValue szIni$, "FILES", "chap6_1.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_1\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  579.     CreateIniKeyValue szIni$, "FILES", "chap6_2.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_2\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  580.     CreateIniKeyValue szIni$, "FILES", "chap6_3.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_3\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  581.     CreateIniKeyValue szIni$, "FILES", "chap6_4.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_4\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  582.     CreateIniKeyValue szIni$, "FILES", "chap6_5.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_5\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  583.     CreateIniKeyValue szIni$, "FILES", "chap6_6.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_6\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  584.     CreateIniKeyValue szIni$, "FILES", "chap6_7.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_7\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  585.     CreateIniKeyValue szIni$, "FILES", "chap6_8.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_8\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  586.     CreateIniKeyValue szIni$, "FILES", "chap6_9.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap6\chap6_9\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  587.     CreateIniKeyValue szIni$, "FILES", "chap7_1p.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap7\chap7_1\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  588.     CreateIniKeyValue szIni$, "FILES", "chap7_1s.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap7\chap7_1\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  589.     CreateIniKeyValue szIni$, "FILES", "chap7_2p.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap7\chap7_2\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  590.     CreateIniKeyValue szIni$, "FILES", "chap7_2s.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap7\chap7_2\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  591.     CreateIniKeyValue szIni$, "FILES", "chap8_1.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap8\chap8_1\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  592.     CreateIniKeyValue szIni$, "FILES", "chap8_2.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap8\chap8_2\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  593.     CreateIniKeyValue szIni$, "FILES", "chap8_3.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap8\chap8_3\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  594.     CreateIniKeyValue szIni$, "FILES", "chap8_4.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap8\chap8_4\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  595.     CreateIniKeyValue szIni$, "FILES", "chap8_5.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap8\chap8_5\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  596.     CreateIniKeyValue szIni$, "FILES", "chap9_1.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap9\chap9_1\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  597.     CreateIniKeyValue szIni$, "FILES", "chap9_2.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap9\chap9_2\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  598.     CreateIniKeyValue szIni$, "FILES", "chap9_3.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap9\chap9_3\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  599.     CreateIniKeyValue szIni$, "FILES", "chap9_4.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap9\chap9_4\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  600.     CreateIniKeyValue szIni$, "FILES", "chap9_5.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap9\chap9_5\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  601.     CreateIniKeyValue szIni$, "FILES", "chap9_6.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap9\chap9_6\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  602.     CreateIniKeyValue szIni$, "FILES", "chap9_7.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap9\chap9_7\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  603.     CreateIniKeyValue szIni$, "FILES", "chap10_1.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap10\chap10_1\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  604.     CreateIniKeyValue szIni$, "FILES", "chap10_2.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap10\chap10_2\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  605.     CreateIniKeyValue szIni$, "FILES", "chap11_1.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap11\chap11_1\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  606.     CreateIniKeyValue szIni$, "FILES", "chap11_2.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap11\chap11_2\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  607.     CreateIniKeyValue szIni$, "FILES", "chap11_3.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap11\chap11_3\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  608.     CreateIniKeyValue szIni$, "FILES", "chap11_4.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap11\chap11_4\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  609.     CreateIniKeyValue szIni$, "FILES", "chap12_1.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap12\chap12_1\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  610.     CreateIniKeyValue szIni$, "FILES", "chap12_2.MVB", GetSymbolValue("STF_SRCDIR") + "howtos\chap12\chap12_2\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  611.     CreateIniKeyValue szIni$, "FILES", "tstools.MVB", szViewerDir$ + "\addons\tstools\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  612.     CreateIniKeyValue szIni$, "FILES", "tstoolsw.MVB", szViewerDir$ + "\addons\tstools\," + "Please insert the Viewer How-To disk.", cmoOverwrite
  613.  
  614.  
  615.     '' CUSTOMIZATION: If you're installing a Help title or any custom DLLs,
  616.     '' you should copy the preceding statement for each extra title or DLL.
  617.     ''
  618.     '' Example for installing an extra title:
  619.     ''
  620.     ''    CreateIniKeyValue szIni$, "FILES", "GALHELP.MVB", GetSymbolValue("STF_SRCDIR") + "," + "Please insert the Viewer 2.0 Gallery disk.", cmoOverwrite
  621.     ''
  622.     '' Example for installing a custom DLL:
  623.     ''
  624.     ''    CreateIniKeyValue szIni$, "FILES", "GALLERY.DLL", GetSymbolValue("STF_SRCDIR") + "," + "A required file is missing. Please reinstall the Viewer Gallery.", cmoOverwrite
  625.  
  626. END SUB
  627.  
  628.  
  629. '*************************************************************************
  630. '** Purpose:
  631. '**     Creates program manager entries for the title
  632. '*************************************************************************
  633.  
  634. SUB ModifyProgramManager(szTitleDir$) STATIC
  635.  
  636.     '' Create the program manager group
  637.  
  638.     CreateProgmanGroup ProgmanGroup$, "", cmoNone
  639.     ShowProgmanGroup ProgmanGroup$, 1, cmoNone
  640.     
  641.     '' Create an entry for the title
  642.      
  643.     '' CreateProgmanItem ProgmanGroup$, ProgmanItem$, "mviewer2.exe " + MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".MVB"), "", cmoOverwrite
  644.     
  645.     '' CUSTOMIZATION: 
  646.     ''
  647.     '' To create additional Program Manager items, copy the preceding 
  648.     '' statement for each additional item, substituting the appropriate
  649.     '' name for the MVBFileName$ variable.
  650.     ''
  651.     '' To display a custom icon with the Program Manager item, specify
  652.     '' the icon filename with the fourth parameter (this parameter is 
  653.     '' currently an empty string, ""). The following example specifies 
  654.       '' an icon with the same filename as the .MVB file:
  655.     ''
  656.     CreateProgmanItem ProgmanGroup$, ProgmanItem$, "mviewer2.exe " + MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".MVB"), szTitleDir$ + "\" + MVBFileName$ + ".ICO", cmoOverwrite
  657.     CreateProgmanItem ProgmanGroup$, "ViewerHT Read Me", szTitleDir$ + "\readme.txt", "", cmoOverwrite
  658.     CreateProgmanItem ProgmanGroup$, "TsTools Demo", szViewerDir$ + "\addons\tstools\tstools.mvb", szViewerDir$ + "\addons\tstools\tstools.mvb", cmoOverwrite
  659.     CreateProgmanItem ProgmanGroup$, "TsTools-Waite Demo", szViewerDir$ + "\addons\tstools\tstoolsw.mvb", szViewerDir$ + "\addons\tstools\tstoolsw.mvb", cmoOverwrite
  660.     CreateProgmanItem ProgmanGroup$, "License.txt", szViewerDir$ + "\addons\mvtran\license.txt", szViewerDir$ + "\addons\mvtran\book.ico", cmoOverwrite
  661.     CreateProgmanItem ProgmanGroup$, "Transcriber Demo", szViewerDir$ + "\addons\mvtran\mvtran.mvb", szViewerDir$ + "\addons\mvtran\book.ico", cmoOverwrite
  662.     CreateProgmanItem ProgmanGroup$, "Viewer VBX Help", szViewerDir$ + "\addons\mvvbx\vbmv.hlp", szViewerDir$ + "\addons\mvvbx\book.ico", cmoOverwrite
  663.     CreateProgmanItem ProgmanGroup$, "MVSPY", szViewerDir$ + "\addons\mvvbx\mvspy.exe", szViewerDir$ + "\addons\mvvbx\book.ico", cmoOverwrite
  664.     CreateProgmanItem ProgmanGroup$, "Push Button Demo", szViewerDir$ + "\addons\push\push.mvb", szViewerDir$ + "\addons\push\book.ico", cmoOverwrite
  665.     CreateProgmanItem ProgmanGroup$, "SCORE Demo", szViewerDir$ + "\addons\score\score.mvb", szViewerDir$ + "\addons\score\book.ico", cmoOverwrite
  666.     CreateProgmanItem ProgmanGroup$, "Viewer Commander Demo", szViewerDir$ + "\addons\vbcomm2\viewcom2.mvb", szViewerDir$ + "\addons\vbcomm2\book.ico", cmoOverwrite
  667.  
  668. END SUB
  669.  
  670.  
  671. '*************************************************************************
  672. '** Purpose:
  673. '**     Registers custom fonts with Windows.
  674. '*************************************************************************
  675.  
  676. SUB RegisterCustomFonts STATIC
  677.  
  678.     '' CUSTOMIZATION: If you install custom fonts, then add statements
  679.     '' in this routine to register the fonts with the current Windows 
  680.     '' session and to add them to the WIN.INI [Fonts] section. 
  681.     ''
  682.     '' Note that TrueType fonts can only be installed in Windows 3.1.
  683.     '' RegisterFont automatically creates the required .FOT file for 
  684.     '' TrueType fonts.
  685.     ''    
  686.     '' The following example registers a font residing in MISTRAL.TTF
  687.     '' and installs the font with the name Mistral (True Type):
  688.     '' 
  689.     ''     RegisterFont "mistral.ttf", "Mistral (TrueType)"
  690.     ''
  691.  
  692. END SUB
  693.  
  694.  
  695. '*************************************************************************
  696. '** Purpose:
  697. '**     Registers Windows drivers
  698. '*************************************************************************
  699.  
  700. SUB RegisterDrivers STATIC
  701.  
  702. '' CUSTOMIZATION: Video for Windows is not a standard component of
  703. '' Windows 3.1. If your title uses video, proceed as follows.
  704. ''
  705. '' 1) Add the following files to the [System Files] section of the INF file:
  706. ''
  707. ''    dispdib.dll
  708. ''    msvideo.dll
  709. ''    indeo.drv
  710. ''    mciavi.drv
  711. ''    msvidc.drv
  712. ''
  713. '' 2) Add the above files to your release directory. US versions can be 
  714. ''    found in the \SYSTEM subdirectory of your Viewer disc. French and
  715. ''    German versions were not available at ship time. Please contact 
  716. ''    Microsoft or check the Multimedia Viewer section on the Microsoft
  717. ''    Compuserve Forum for further details.
  718. ''
  719. '' 3) Uncomment the following lines:
  720. ''
  721.  
  722.  CreateIniKeyValue "WIN.INI", "mci extensions", "flc", "AAanim", cmoNone
  723.  CreateIniKeyValue "WIN.INI", "mci extensions", "fli", "AAanim", cmoNone
  724.  CreateIniKeyValue "WIN.INI", "mci extensions", "aas", "AAanim", cmoNone
  725.  CreateIniKeyValue "WIN.INI", "mci extensions", "awm", "GDAnim", cmoNone
  726.  CreateIniKeyValue "WIN.INI", "mci extensions", "awa", "GDAnim", cmoNone
  727.  
  728.  CreateIniKeyValue MakePath(GetWindowsDir(), "SYSTEM.INI"), "mci", "AAAnim", "mciaap.drv", cmoNone
  729.  CreateIniKeyValue MakePath(GetWindowsDir(), "SYSTEM.INI"), "mci", "GDAnim", "mciawi.drv 09/13/93", cmoNone
  730.  
  731. END SUB
  732.  
  733.  
  734.  
  735.